package com.weixing.mall.provider.model.query;

import com.weixing.mall.base.enums.WhetherEnum;
import com.weixing.mall.core.enums.OrderSysTagEnum;
import com.weixing.mall.provider.api.model.enums.OrderTypeEnum;
import com.weixing.mall.provider.model.enums.*;
import lombok.Data;

import java.util.List;

/**
 * 代理订单查询
 *
 * @author  wx
 * @date  2019/10/17 17:02
 * @since  1.0
 */
@Data
public class AgentOrderQuery {

    /**
     * 代理商订单搜索-选中的代理id，
     * (客服需收款报表，上交人id传递此参数)
     */
    private Long selectedAgentId;
    /**
     * 客户姓名（收件人）
     */
    private String contactUser;
    /**
     * 收件人手机号
     */
    private String contactPhone;
    /**
     * 订单类型
     */
    private OrderTypeEnum orderType;
    /**
     * 订单来源
     */
    private OrderFromEnum orderFrom;
    /**
     * 订单状态
     */
    private OrderStateEnum orderStatus;
    /**
     * 支付状态
     */
    private WhetherEnum isPay;

    /**
     * 下单开始时间
     */
    private String startTime;
    /**
     * 下单结束时间
     */
    private String endTime;
    /**
     * 审核时间开始时间
     */
    private String auditStartTime;
    /**
     * 审核时间结束时间
     */
    private String auditEndTime;
    /**
     * 断货或取消时间开始时间
     */
    private String nosuppllyStartTime;
    /**
     * 断货或取消时间结束时间
     */
    private String nosuppllyEndTime;

    /**
     * 所属代理商
     */
    private Long agentId;

    /**
     * 代理商名称
     */
    private String agentName;
    /**
     * 所属客服
     */
    private Long customerId;
    /**
     * 所属经销商
     */
    private Long distributorId;
    /**
     * 活动id
     */
    private Long actId;
    /**
     * 会员名称
     */
    private String nickName;

    /**
     * 货号
     */
    private String goodsSn;
    /**
     * 支付流水号
     */
    private String outTradeNo;
    /**
     * 订单编号
     */
    private String orderSn;
    /**
     * 款号
     */
    private String styleNo;
    /**
     * 审核状态
     */
    private OrderAuditStateEnum auditStatus;

    /**
     * 订单状态组（无需传递）
     *
     * @ignore
     */
    private List<Integer> orderStates;

    /**
     * 审核部门（无需传递）
     *
     * @ignore
     */
    private AuditDeptEnum auditDept;

    /**
     * 需审核人（无需传递）
     *
     * @ignore
     */
    private Long auditor;

    /**
     * 是否是代理认领订单（无需传递）
     *
     * @ignore
     */
    private OrderIsClaimEnum isClaim;

    /**
     * 货品码（无需传递）
     *
     * @ignore
     */
    private String productSn;


    /**
     * 是否主订单（无需传递）
     *
     * @ignore
     */
    private WhetherEnum isMaster = WhetherEnum.NO;

    /**
     * 已审核过的代理商id（用于已审核订单查询）（无需传递）
     *
     * @ignore
     */
    private Long hasAuditAgentId;


    /**
     * 代理商id（用于查询个人和团队的订单）（无需传递）
     *
     * @ignore
     */
    private Long agentIdForQueryAll;

    /**
     * 订单商品状态（无需传递）
     *
     * @ignore
     */
    private Integer itemStatus;

    /**
     * 订单是否删除（无需传递）
     *
     * @ignore
     */
    private WhetherEnum isDel = WhetherEnum.NO;

    /**
     * 是否线上订单 0线下 1线上
     */
    private WhetherEnum isOnline;

    /**
     * 下单人
     */
    private String buyer;


    /**
     * 系统标签
     */
    private OrderSysTagEnum sysTag;


    /**
     * 经销商ID
     */
    private Long dealerId;

    /**
     * 所属一级代理id
     */
    private Long level1st;

    /**
     * 所属二级代理id
     */
    private Long level2nd;

    /**
     * 所属三级代理id
     */
    private Long level3rd;

    /**
     * 快递名称
     */
    private String expressName;


    /**
     * 是否换货标识  0 正常订单   1 换货订单
     */
    private Integer afterSaleTag;

}
